﻿// --------------------------------------------------------------------------------------------------------------------
// <copyright file="IGestureController.cs" company="arvystate.net">
//   arvystate.net
// </copyright>
// <summary>
//   The gesture event handler.
// </summary>
// --------------------------------------------------------------------------------------------------------------------

namespace PresentationAid.Lib.GestureControllers
{
    using Microsoft.Kinect;

    using PresentationAid.Lib.Gestures;

    /// <summary>
    /// The gesture event handler.
    /// </summary>
    /// <param name="sender">
    /// The sender.
    /// </param>
    /// <param name="e">
    /// The e.
    /// </param>
    public delegate void GestureEventHandler(object sender, GestureEventArgs e);

    /// <summary>
    /// The GestureController interface.
    /// </summary>
    public interface IGestureController
    {
        #region Public Events

        /// <summary>
        /// The gesture recognized.
        /// </summary>
        event GestureEventHandler GestureRecognized;

        #endregion

        #region Public Methods and Operators

        /// <summary>
        /// The recognize.
        /// </summary>
        /// <param name="frame">
        /// The frame.
        /// </param>
        void Recognize(SkeletonFrame frame);

        #endregion
    }
}